package com.zmc.lostfound.common.utils;

import cn.hutool.core.util.StrUtil;
import com.zmc.lostfound.common.constant.RegexConstant;

/**
 * @author zmc
 * @description 正则表达式校验工具类
 */
public class RegexUtil {

    /**
     * 是否是 错误 手机格式
     *
     * @param phone 要校验的手机号
     * @return true:格式错误，false:格式正确
     */
    public static boolean isPhoneInvalid(String phone) {
        return mismatch(phone, RegexConstant.PHONE_REGEX);
    }

    /**
     * 是否是 错误 邮箱格式
     *
     * @param email 要校验的邮箱
     * @return true:格式错误，false:格式正确
     */
    public static boolean isEmailInvalid(String email) {
        return mismatch(email, RegexConstant.EMAIL_REGEX);
    }

    /**
     * 是否是 错误 密码格式
     *
     * @param code 要校验的密码
     * @return true:格式错误，false:格式正确
     */
    public static boolean isPassWordInvalid(String code) {
        return mismatch(code, RegexConstant.PASSWORD_REGEX);
    }

    /**
     * 是否是 错误 验证码格式
     *
     * @param code 要校验的验证码
     * @return true:格式错误，false:格式正确
     */
    public static boolean isCaptchaInvalid(String code) {
        return mismatch(code, RegexConstant.CAPTCHA_REGEX);
    }

    /**
     * 校验字符串是否 不符合 正则表达式
     *
     * @param str   要校验的字符串
     * @param regex 正则表达式
     * @return true:格式错误，false:格式正确
     */
    public static boolean mismatch(String str, String regex) {
        if (StrUtil.isBlank(str)) {
            return true;
        }
        return !str.matches(regex);
    }

}
